import { checkUpdateApi } from "@/api/system/common"
export type StoreListItem = {
	enable : boolean
	id : string
	name : string
	scheme : string
	priority : number // 优先级
}

export type UniUpgradeCenterResult = {
	_id : string
	appid : string
	name : string
	title : string
	contents : string
	url : string // 安装包下载地址
	platform : Array<string> // Array<'Android' | 'iOS' | 'Harmony'>
	version : string // 版本号 1.0.0
	uni_platform : string // "android" | "ios" | 'harmony'
	stable_publish : boolean // 是否是稳定版
	is_mandatory : boolean // 是否强制更新
	is_silently : boolean | null	// 是否静默更新
	create_env : string // "upgrade-center"
	create_date : number
	message : string
	code : number

	type : string // "native_app" | "wgt"
	store_list : StoreListItem[] | null
	min_uni_version : string | null  // 升级 wgt 的最低 uni-app 版本
}

const platformName = (systemInfo: any) => {
	let platform = ''
	if (systemInfo.platform === 'android') {
	    // 判断是否是鸿蒙
	    if (systemInfo.osName && systemInfo.osName.toLowerCase().includes('harmony')) {
	        platform = 'Harmony';
	    } else {
	        platform = 'Android';
	    }
	} else if (systemInfo.platform === 'ios') {
	    platform = 'iOS';
	}
	return platform
}

export default function () : Promise<UniUpgradeCenterResult> {
	// #ifdef APP
	return new Promise<UniUpgradeCenterResult>((resolve, reject) => {
		const systemInfo = uni.getSystemInfoSync()
		const appId = systemInfo.appId
		const platform = platformName(systemInfo)
		const appVersion = systemInfo.appVersion //systemInfo.appVersion
		// #ifndef UNI-APP-X
		if (typeof appId === 'string' && typeof appVersion === 'string' && appId.length > 0 && appVersion.length > 0) {
			plus.runtime.getProperty(appId, function (widgetInfo) {
				if (widgetInfo.version) {
					const data = {
						appid: appId,
						appVersion: appVersion,
						platform: platform
					}
					// console.log(data)
					checkUpdateApi(data).then(res => {
						if (res.code === 200) {
							let e = {
								result: res.data
							};
							resolve({
								id : e.result.id,
								appid : e.result.appid,
								name : e.result.name,
								title : e.result.title,
								contents: e.result.contents,
								url : e.result.url, // 安装包下载地址
								platform : [e.result.platform], // Array<'Android' | 'iOS' | 'Harmony'>
								version : e.result.version, // 版本号 1.0.0
								uni_platform : e.result.platform, // "android" | "ios" | 'harmony'
								stable_publish : e.result.stable_publish === 1, // 是否是稳定版
								is_mandatory : e.result.is_mandatory === 1, // 是否强制更新
								is_silently : e.result.is_silently === 1,	// 是否静默更新
								create_env : 'upgrade-center', // "upgrade-center"
								create_date : e.result.create_date,
								message : e.result?.message || '版本信息错误',
								code : e.result.code,
								type : e.result.type, // "native_app" | "wgt"
								store_list : null,
								min_uni_version : e.result.min_uni_version  // 升级 wgt 的最低 uni-app 版本
							})
							console.log('调用更新接口成功！')
						}
					})
				} else {
					reject('widgetInfo.version is EMPTY')
				}
			})
		} else {
			reject('plus.runtime.appid is EMPTY')
		}
		// #endif
	})
	// #endif
	// #ifndef APP
	return new Promise((resolve, reject) => {
		reject({
			message: '请在App中使用'
		})
	})
	// #endif
}

